﻿using System;
using System.Collections.Generic;
using System.Data.Entity;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Registro.Compras.Data.Entities;

namespace Registro.Compras.Data.Business
{
    public class EncabezadoBusiness
    {
        public static IList<Encabezado> GetListByFilter(string filter)
        {
            using (RegistroComprasDbContext ctx = new RegistroComprasDbContext())
            {
                return ctx.Encabezados.Where(u => u.Periodo.Contains(filter)).ToList();
            }
        }

        public static Encabezado Create(Encabezado Encabezado)
        {
            using (RegistroComprasDbContext ctx = new RegistroComprasDbContext())
            {
                Encabezado EncabezadoDB = ctx.Encabezados.Add(Encabezado);

                ctx.SaveChanges();
                return EncabezadoDB;
            }
        }
        public static Encabezado Update(Encabezado Encabezado)
        {
            using (RegistroComprasDbContext ctx = new RegistroComprasDbContext())
            {
                ctx.Entry(Encabezado).State = EntityState.Modified;
                ctx.SaveChanges();
                return Encabezado;
            }
        }
        public static Encabezado GetById(int id)
        {
            using (RegistroComprasDbContext ctx = new RegistroComprasDbContext())
            {
                Encabezado EncabezadoDB = ctx.Encabezados.Find(id);
                if (EncabezadoDB == null)
                {
                    throw new Exception("Encabezado not found in data base");
                }
                return ctx.Encabezados.Find(id);
            }
        }
        public static void Delete(int id)
        {
            using (RegistroComprasDbContext ctx = new RegistroComprasDbContext())
            {
                Encabezado EncabezadoDB = ctx.Encabezados.Find(id);
                if (EncabezadoDB == null)
                {
                    throw new Exception("Encabezado not found in data base");
                }
                ctx.Encabezados.Remove(EncabezadoDB);
                ctx.SaveChanges();
            }
        }

    }
}